home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / programr / ssetup26.zip / CHOICE2.FR_ / CHOICE2.FRM
Text File  |  1995-07-27  |  18KB  |  629 lines

  1. VERSION 2.00
  2. Begin Form Form4 
  3.    BackColor       =   &H00C0C0C0&
  4.    BorderStyle     =   1  'Fixed Single
  5.    Caption         =   "Installation options..."
  6.    ClientHeight    =   4200
  7.    ClientLeft      =   1320
  8.    ClientTop       =   2112
  9.    ClientWidth     =   6372
  10.    ControlBox      =   0   'False
  11.    Height          =   4524
  12.    Left            =   1272
  13.    LinkMode        =   1  'Source
  14.    LinkTopic       =   "Form4"
  15.    MaxButton       =   0   'False
  16.    MinButton       =   0   'False
  17.    ScaleHeight     =   4200
  18.    ScaleWidth      =   6372
  19.    Top             =   1836
  20.    Width           =   6468
  21.    Begin CommandButton Commande2 
  22.       Caption         =   "&Abort"
  23.       Height          =   375
  24.       Left            =   5040
  25.       TabIndex        =   1
  26.       Top             =   720
  27.       Width           =   1215
  28.    End
  29.    Begin CommandButton Commande1 
  30.       Caption         =   "OK"
  31.       Height          =   375
  32.       Left            =   5040
  33.       TabIndex        =   0
  34.       Top             =   240
  35.       Width           =   1215
  36.    End
  37.    Begin Frame Cadre1 
  38.       BackColor       =   &H00C0C0C0&
  39.       Caption         =   "Install... "
  40.       Height          =   3375
  41.       Left            =   120
  42.       TabIndex        =   6
  43.       Top             =   120
  44.       Width           =   4815
  45.       Begin CheckBox Coche8 
  46.          BackColor       =   &H00C0C0C0&
  47.          Caption         =   "Coche8"
  48.          Height          =   255
  49.          Left            =   120
  50.          TabIndex        =   14
  51.          Top             =   2880
  52.          Visible         =   0   'False
  53.          Width           =   3375
  54.       End
  55.       Begin CheckBox Coche7 
  56.          BackColor       =   &H00C0C0C0&
  57.          Caption         =   "Coche7"
  58.          Height          =   255
  59.          Left            =   120
  60.          TabIndex        =   13
  61.          Top             =   2520
  62.          Visible         =   0   'False
  63.          Width           =   3375
  64.       End
  65.       Begin CheckBox Coche6 
  66.          BackColor       =   &H00C0C0C0&
  67.          Caption         =   "Coche6"
  68.          Height          =   255
  69.          Left            =   120
  70.          TabIndex        =   12
  71.          Top             =   2160
  72.          Visible         =   0   'False
  73.          Width           =   3375
  74.       End
  75.       Begin CheckBox Coche5 
  76.          BackColor       =   &H00C0C0C0&
  77.          Caption         =   "Coche5"
  78.          Height          =   255
  79.          Left            =   120
  80.          TabIndex        =   11
  81.          Top             =   1800
  82.          Visible         =   0   'False
  83.          Width           =   3375
  84.       End
  85.       Begin CheckBox Coche4 
  86.          BackColor       =   &H00C0C0C0&
  87.          Caption         =   "Coche4"
  88.          Height          =   255
  89.          Left            =   120
  90.          TabIndex        =   10
  91.          Top             =   1440
  92.          Visible         =   0   'False
  93.          Width           =   3375
  94.       End
  95.       Begin CheckBox Coche3 
  96.          BackColor       =   &H00C0C0C0&
  97.          Caption         =   "Coche3"
  98.          Height          =   255
  99.          Left            =   120
  100.          TabIndex        =   9
  101.          Top             =   1080
  102.          Visible         =   0   'False
  103.          Width           =   3375
  104.       End
  105.       Begin CheckBox Coche2 
  106.          BackColor       =   &H00C0C0C0&
  107.          Caption         =   "Coche2"
  108.          Height          =   255
  109.          Left            =   120
  110.          TabIndex        =   8
  111.          Top             =   720
  112.          Visible         =   0   'False
  113.          Width           =   3375
  114.       End
  115.       Begin CheckBox Coche1 
  116.          BackColor       =   &H00C0C0C0&
  117.          Caption         =   "Coche1"
  118.          Height          =   255
  119.          Left            =   120
  120.          TabIndex        =   7
  121.          Top             =   360
  122.          Visible         =   0   'False
  123.          Width           =   3375
  124.       End
  125.       Begin Label Etiquette10 
  126.          Alignment       =   1  'Right Justify
  127.          BackColor       =   &H00C0C0C0&
  128.          Height          =   255
  129.          Left            =   3600
  130.          TabIndex        =   22
  131.          Top             =   2880
  132.          Visible         =   0   'False
  133.          Width           =   1095
  134.       End
  135.       Begin Label Etiquette9 
  136.          Alignment       =   1  'Right Justify
  137.          BackColor       =   &H00C0C0C0&
  138.          Height          =   255
  139.          Left            =   3600
  140.          TabIndex        =   21
  141.          Top             =   2520
  142.          Visible         =   0   'False
  143.          Width           =   1095
  144.       End
  145.       Begin Label Etiquette8 
  146.          Alignment       =   1  'Right Justify
  147.          BackColor       =   &H00C0C0C0&
  148.          Height          =   255
  149.          Left            =   3600
  150.          TabIndex        =   20
  151.          Top             =   2160
  152.          Visible         =   0   'False
  153.          Width           =   1095
  154.       End
  155.       Begin Label Etiquette7 
  156.          Alignment       =   1  'Right Justify
  157.          BackColor       =   &H00C0C0C0&
  158.          Height          =   255
  159.          Left            =   3600
  160.          TabIndex        =   19
  161.          Top             =   1800
  162.          Visible         =   0   'False
  163.          Width           =   1095
  164.       End
  165.       Begin Label Etiquette6 
  166.          Alignment       =   1  'Right Justify
  167.          BackColor       =   &H00C0C0C0&
  168.          Height          =   255
  169.          Left            =   3600
  170.          TabIndex        =   18
  171.          Top             =   1440
  172.          Visible         =   0   'False
  173.          Width           =   1095
  174.       End
  175.       Begin Label Etiquette5 
  176.          Alignment       =   1  'Right Justify
  177.          BackColor       =   &H00C0C0C0&
  178.          Height          =   255
  179.          Left            =   3600
  180.          TabIndex        =   17
  181.          Top             =   1080
  182.          Visible         =   0   'False
  183.          Width           =   1095
  184.       End
  185.       Begin Label Etiquette4 
  186.          Alignment       =   1  'Right Justify
  187.          BackColor       =   &H00C0C0C0&
  188.          Height          =   255
  189.          Left            =   3600
  190.          TabIndex        =   16
  191.          Top             =   720
  192.          Visible         =   0   'False
  193.          Width           =   1095
  194.       End
  195.       Begin Label Etiquette3 
  196.          Alignment       =   1  'Right Justify
  197.          BackColor       =   &H00C0C0C0&
  198.          Height          =   255
  199.          Left            =   3600
  200.          TabIndex        =   15
  201.          Top             =   360
  202.          Visible         =   0   'False
  203.          Width           =   1095
  204.       End
  205.    End
  206.    Begin Label FreeLabel 
  207.       Alignment       =   1  'Right Justify
  208.       BackColor       =   &H00C0C0C0&
  209.       Caption         =   "K"
  210.       Height          =   255
  211.       Left            =   3360
  212.       TabIndex        =   5
  213.       Top             =   3840
  214.       Width           =   1455
  215.    End
  216.    Begin Label Etiquette2 
  217.       BackColor       =   &H00C0C0C0&
  218.       Caption         =   "Free disk space (Kb.):"
  219.       Height          =   255
  220.       Left            =   240
  221.       TabIndex        =   3
  222.       Top             =   3840
  223.       Width           =   3255
  224.    End
  225.    Begin Label SelLabel 
  226.       Alignment       =   1  'Right Justify
  227.       BackColor       =   &H00C0C0C0&
  228.       Caption         =   "K"
  229.       Height          =   255
  230.       Left            =   3240
  231.       TabIndex        =   4
  232.       Top             =   3600
  233.       Width           =   1575
  234.    End
  235.    Begin Label Etiquette1 
  236.       BackColor       =   &H00C0C0C0&
  237.       Caption         =   "Required disk space (Kb.):"
  238.       Height          =   255
  239.       Left            =   240
  240.       TabIndex        =   2
  241.       Top             =   3600
  242.       Width           =   3255
  243.    End
  244. End
  245.  
  246. Sub Coche1_Click ()
  247. '---------------------------------------------------
  248. ' Add or remove a group
  249. ' and change the selection size
  250. '---------------------------------------------------
  251. a% = 1
  252.  
  253. If (Coche1.Value = 0) Then
  254.  UserConfigSize& = UserConfigSize& - Section(a%).lSize&
  255.  Section(a%).bSelected% = 0
  256. Else
  257.  UserConfigSize& = UserConfigSize& + Section(a%).lSize&
  258.  Section(a%).bSelected% = 1
  259. End If
  260. If (iLanguage% = LANGUAGE_FRENCH) Then
  261.  SelLabel.Caption = Str$(UserConfigSize&) + " Ko."
  262.  If (Section(a%).bSelected% = 1) Then
  263.   Etiquette3.Caption = Str$(UserConfigSize&) + " Ko."
  264.  End If
  265. Else
  266.  SelLabel.Caption = Str$(UserConfigSize&) + " Kb."
  267.  If (Section(a%).bSelected% = 1) Then
  268.   Etiquette3.Caption = Str$(UserConfigSize&) + " Kb."
  269.  End If
  270. End If
  271. If (Section(a%).bSelected% = 0) Then
  272.  Etiquette3.Caption = ""
  273. End If
  274.  
  275. End Sub
  276.  
  277. Sub Coche2_Click ()
  278. a% = 2
  279. If (Coche2.Value = 0) Then
  280.  UserConfigSize& = UserConfigSize& - Section(a%).lSize&
  281.  Section(a%).bSelected% = 0
  282. Else
  283.  UserConfigSize& = UserConfigSize& + Section(a%).lSize&
  284.  Section(a%).bSelected% = 1
  285. End If
  286. If (iLanguage% = LANGUAGE_FRENCH) Then
  287.  SelLabel.Caption = Str$(UserConfigSize&) + " Ko."
  288.  If (Section(a%).bSelected% = 1) Then
  289.   Etiquette4.Caption = Str$(UserConfigSize&) + " Ko."
  290.  End If
  291. Else
  292.  SelLabel.Caption = Str$(UserConfigSize&) + " Kb."
  293.  If (Section(a%).bSelected% = 1) Then
  294.   Etiquette4.Caption = Str$(UserConfigSize&) + " Kb."
  295.  End If
  296. End If
  297. If (Section(a%).bSelected% = 0) Then
  298.  Etiquette4.Caption = ""
  299. End If
  300.  
  301.  
  302. End Sub
  303.  
  304. Sub Coche3_Click ()
  305. a% = 3
  306. If (Coche3.Value = 0) Then
  307.  UserConfigSize& = UserConfigSize& - Section(a%).lSize&
  308.  Section(a%).bSelected% = 0
  309. Else
  310.  UserConfigSize& = UserConfigSize& + Section(a%).lSize&
  311.  Section(a%).bSelected% = 1
  312. End If
  313. If (iLanguage% = LANGUAGE_FRENCH) Then
  314.  SelLabel.Caption = Str$(UserConfigSize&) + " Ko."
  315.  If (Section(a%).bSelected% = 1) Then
  316.   Etiquette5.Caption = Str$(UserConfigSize&) + " Ko."
  317.  End If
  318. Else
  319.  SelLabel.Caption = Str$(UserConfigSize&) + " Kb."
  320.  If (Section(a%).bSelected% = 1) Then
  321.   Etiquette5.Caption = Str$(UserConfigSize&) + " Kb."
  322.  End If
  323. End If
  324. If (Section(a%).bSelected% = 0) Then
  325.  Etiquette5.Caption = ""
  326. End If
  327.  
  328.  
  329. End Sub
  330.  
  331. Sub Coche4_Click ()
  332. a% = 4
  333. If (Coche4.Value = 0) Then
  334.  UserConfigSize& = UserConfigSize& - Section(a%).lSize&
  335.  Section(a%).bSelected% = 0
  336. Else
  337.  UserConfigSize& = UserConfigSize& + Section(a%).lSize&
  338.  Section(a%).bSelected% = 1
  339. End If
  340. If (iLanguage% = LANGUAGE_FRENCH) Then
  341.  SelLabel.Caption = Str$(UserConfigSize&) + " Ko."
  342.  If (Section(a%).bSelected% = 1) Then
  343.   Etiquette6.Caption = Str$(UserConfigSize&) + " Ko."
  344.  End If
  345. Else
  346.  SelLabel.Caption = Str$(UserConfigSize&) + " Kb."
  347.  If (Section(a%).bSelected% = 1) Then
  348.   Etiquette6.Caption = Str$(UserConfigSize&) + " Kb."
  349.  End If
  350. End If
  351. If (Section(a%).bSelected% = 0) Then
  352.  Etiquette6.Caption = ""
  353. End If
  354.  
  355. End Sub
  356.  
  357. Sub Coche5_Click ()
  358. a% = 5
  359. If (Coche5.Value = 0) Then
  360.  UserConfigSize& = UserConfigSize& - Section(a%).lSize&
  361.  Section(a%).bSelected% = 0
  362. Else
  363.  UserConfigSize& = UserConfigSize& + Section(a%).lSize&
  364.  Section(a%).bSelected% = 1
  365. End If
  366. If (iLanguage% = LANGUAGE_FRENCH) Then
  367.  SelLabel.Caption = Str$(UserConfigSize&) + " Ko."
  368.  If (Section(a%).bSelected% = 1) Then
  369.   Etiquette7.Caption = Str$(UserConfigSize&) + " Ko."
  370.  End If
  371. Else
  372.  SelLabel.Caption = Str$(UserConfigSize&) + " Kb."
  373.  If (Section(a%).bSelected% = 1) Then
  374.   Etiquette7.Caption = Str$(UserConfigSize&) + " Kb."
  375.  End If
  376. End If
  377. If (Section(a%).bSelected% = 0) Then
  378.  Etiquette7.Caption = ""
  379. End If
  380.  
  381. End Sub
  382.  
  383. Sub Coche6_Click ()
  384. a% = 6
  385. If (Coche6.Value = 0) Then
  386.  UserConfigSize& = UserConfigSize& - Section(a%).lSize&
  387.  Section(a%).bSelected% = 0
  388. Else
  389.  UserConfigSize& = UserConfigSize& + Section(a%).lSize&
  390.  Section(a%).bSelected% = 1
  391. End If
  392. If (iLanguage% = LANGUAGE_FRENCH) Then
  393.  SelLabel.Caption = Str$(UserConfigSize&) + " Ko."
  394.  If (Section(a%).bSelected% = 1) Then
  395.   Etiquette8.Caption = Str$(UserConfigSize&) + " Ko."
  396.  End If
  397. Else
  398.  SelLabel.Caption = Str$(UserConfigSize&) + " Kb."
  399.  If (Section(a%).bSelected% = 1) Then
  400.   Etiquette8.Caption = Str$(UserConfigSize&) + " Kb."
  401.  End If
  402. End If
  403. If (Section(a%).bSelected% = 0) Then
  404.  Etiquette8.Caption = ""
  405. End If
  406.  
  407.  
  408. End Sub
  409.  
  410. Sub Coche7_Click ()
  411. a% = 7
  412. If (Coche7.Value = 0) Then
  413.  UserConfigSize& = UserConfigSize& - Section(a%).lSize&
  414.  Section(a%).bSelected% = 0
  415. Else
  416.  UserConfigSize& = UserConfigSize& + Section(a%).lSize&
  417.  Section(a%).bSelected% = 1
  418. End If
  419. If (iLanguage% = LANGUAGE_FRENCH) Then
  420.  SelLabel.Caption = Str$(UserConfigSize&) + " Ko."
  421.  If (Section(a%).bSelected% = 1) Then
  422.   Etiquette9.Caption = Str$(UserConfigSize&) + " Ko."
  423.  End If
  424. Else
  425.  SelLabel.Caption = Str$(UserConfigSize&) + " Kb."
  426.  If (Section(a%).bSelected% = 1) Then
  427.   Etiquette9.Caption = Str$(UserConfigSize&) + " Kb."
  428.  End If
  429. End If
  430. If (Section(a%).bSelected% = 0) Then
  431.  Etiquette9.Caption = ""
  432. End If
  433.  
  434. End Sub
  435.  
  436. Sub Coche8_Click ()
  437. a% = 8
  438. If (Coche8.Value = 0) Then
  439.  UserConfigSize& = UserConfigSize& - Section(a%).lSize&
  440.  Section(a%).bSelected% = 0
  441. Else
  442.  UserConfigSize& = UserConfigSize& + Section(a%).lSize&
  443.  Section(a%).bSelected% = 1
  444. End If
  445. If (iLanguage% = LANGUAGE_FRENCH) Then
  446.  SelLabel.Caption = Str$(UserConfigSize&) + " Ko."
  447.  If (Section(a%).bSelected% = 1) Then
  448.   Etiquette10.Caption = Str$(UserConfigSize&) + " Ko."
  449.  End If
  450. Else
  451.  SelLabel.Caption = Str$(UserConfigSize&) + " Kb."
  452.  If (Section(a%).bSelected% = 1) Then
  453.   Etiquette10.Caption = Str$(UserConfigSize&) + " Kb."
  454.  End If
  455. End If
  456. If (Section(a%).bSelected% = 0) Then
  457.  Etiquette10.Caption = ""
  458. End If
  459.  
  460.  
  461. End Sub
  462.  
  463. Sub Commande1_Click ()
  464. If (UserConfigSize& > AskForDriveSpace(GetDriveNumber(UserPath$))) Then
  465.  Beep
  466.  If (iLanguage% = LANGUAGE_FRENCH) Then
  467.   MsgBox "Il n' a pas assez d' espace disponible pour cette sΘlection!"
  468.  Else
  469.   MsgBox "Not enough free disk space!"
  470.  End If
  471. Exit Sub
  472. End If
  473.  
  474. '---------------------------------------------------
  475. ' We actually add the groups to install depending
  476. ' on the selected groups
  477. '---------------------------------------------------
  478. For a% = 1 To 8
  479. If (Section(a%).bSelected% = 1) Then
  480.  TempPath$ = UserPath$
  481.  If (Section(a%).Directory <> "") Then
  482.   TempPath$ = TempPath$ + Section(a%).Directory$
  483.  End If
  484.  b% = AddSectionToCopyList(Section(a%).Name$, TempPath$)
  485. End If
  486. Next a%
  487. bUserAbort% = 0
  488. bIsSetupOK% = 1
  489. OptionCanClose% = 1
  490. Unload Form4
  491.  
  492. End Sub
  493.  
  494. Sub Commande2_Click ()
  495. If (iLanguage% = LANGUAGE_FRENCH) Then
  496. a% = MsgBox("Etes vous certain de vouloir abandonner l' installation?", 36)
  497. Else
  498. a% = MsgBox("Are you sure you wish to cancel this installation?", 36)
  499. End If
  500. If (a% = 6) Then
  501. OptionCanClose% = 1
  502. bIsSetupOK% = 0
  503. bUserAbort% = 1
  504. Unload Form4
  505. End If
  506.  
  507. End Sub
  508.  
  509. Sub Form_Load ()
  510. 'Form4.Move (Screen.Height / 2) - (Height / 2), (Screen.Width / 2) - (Width / 2), Width, Height
  511. Form4.Move (Screen.Width / 2) - (Width / 2), (Screen.Height / 2) - (Height / 2), Width, Height
  512. Form4.Caption = Dialog2Title$
  513. If (iLanguage% = LANGUAGE_FRENCH) Then
  514. Commande2.Caption = "&Abandonner"
  515. Cadre1.Caption = "Installer... "
  516. Etiquette1.Caption = "Taille de la sΘlection:"
  517. Etiquette2.Caption = "Espace disponible:"
  518. End If
  519. '-------------------------------------------------------
  520. 'CheckBoxes initialization
  521. '-------------------------------------------------------
  522. If (NumberOfSections% > 8) Then
  523.  Beep
  524.  MsgBox "This sample program doesn' t use more than 8 sections!"
  525.  Exit Sub
  526. End If
  527. UserConfigSize& = 0
  528.  
  529. For a% = 1 To NumberOfSections%
  530.  If (Section(a%).Name$ <> "") Then
  531.   Section(a%).lSize& = GetSectionSize(Section(a%).Name$)
  532.   szTempSize$ = Str$(Section(a%).lSize&)
  533.   If (Section(a%).bSelected% = 1) Then
  534.    UserConfigSize& = UserConfigSize& + Section(a%).lSize&
  535.   End If
  536.  If (iLanguage% = LANGUAGE_FRENCH) Then
  537.   szTempSize$ = szTempSize$ + " Ko."
  538.  Else
  539.   szTempSize$ = szTempSize$ + " Kb."
  540.  End If
  541.  If (iLanguage% = LANGUAGE_FRENCH) Then
  542.   szTempLabel$ = Section(a%).FLabel$
  543.  Else
  544.   szTempLabel$ = Section(a%).ELabel$
  545.  End If
  546.  
  547.  'You probably will enhance this very bad method to enable the checkboxes...
  548.  If (a% = 1) Then
  549.   Coche1.Visible = 1
  550.   Etiquette3.Visible = 1
  551.   Coche1.Caption = szTempLabel$
  552.   If (Section(a%).bSelected% = 1) Then
  553.      Coche1.Value = 1
  554.      Etiquette3.Caption = szTempSize$
  555.   End If
  556.  ElseIf (a% = 2) Then
  557.   Coche2.Visible = 1
  558.   Etiquette4.Visible = 1
  559.   Coche2.Caption = szTempLabel$
  560.   If (Section(a%).bSelected% = 1) Then
  561.     Coche2.Value = 1
  562.     Etiquette4.Caption = szTempSize$
  563.   End If
  564.  ElseIf (a% = 3) Then
  565.   Coche3.Visible = 1
  566.   Etiquette5.Visible = 1
  567.   Coche3.Caption = szTempLabel$
  568.   If (Section(a%).bSelected% = 1) Then
  569.     Coche3.Value = 1
  570.     Etiquette5.Caption = szTempSize$
  571.   End If
  572.  ElseIf (a% = 4) Then
  573.   Coche4.Visible = 1
  574.   Etiquette6.Visible = 1
  575.   Coche4.Caption = szTempLabel$
  576.   If (Section(a%).bSelected% = 1) Then
  577.     Coche4.Value = 1
  578.     Etiquette6.Caption = szTempSize$
  579.   End If
  580.  ElseIf (a% = 5) Then
  581.   Coche5.Visible = 1
  582.   Etiquette7.Visible = 1
  583.   Coche5.Caption = szTempLabel$
  584.   If (Section(a%).bSelected% = 1) Then
  585.     Coche5.Value = 1
  586.     Etiquette7.Caption = szTempSize$
  587.   End If
  588.  ElseIf (a% = 6) Then
  589.   Coche6.Visible = 1
  590.   Etiquette8.Visible = 1
  591.   Coche6.Caption = szTempLabel$
  592.   If (Section(a%).bSelected% = 1) Then
  593.     Coche6.Value = 1
  594.     Etiquette8.Caption = szTempSize$
  595.   End If
  596.  ElseIf (a% = 7) Then
  597.   Coche7.Visible = 1
  598.   Etiquette9.Visible = 1
  599.   Coche7.Caption = szTempLabel$
  600.   If (Section(a%).bSelected% = 1) Then
  601.     Coche7.Value = 1
  602.     Etiquette9.Caption = szTempSize$
  603.   End If
  604.  Else
  605.   Coche8.Visible = 1
  606.   Etiquette10.Visible = 1
  607.   Coche8.Caption = szTempLabel$
  608.   If (Section(a%).bSelected% = 1) Then
  609.     Coche8.Value = 1
  610.     Etiquette10.Caption = szTempSize$
  611.   End If
  612.  End If
  613. End If
  614. Next a%
  615.  
  616. lFreeDiskSpace& = AskForDriveSpace(GetDriveNumber(UserPath))
  617. If (iLanguage% = LANGUAGE_FRENCH) Then
  618.  SelLabel.Caption = Str$(UserConfigSize&) + " Ko."
  619.  FreeLabel.Caption = Str$(lFreeDiskSpace&) + " Ko."
  620. Else
  621.  SelLabel.Caption = Str$(UserConfigSize&) + " Kb."
  622.  FreeLabel.Caption = Str$(lFreeDiskSpace&) + " Kb."
  623. End If
  624.  
  625.  
  626.  
  627. End Sub
  628.  
  629.